This invention relates generally to enterprise integration of software application programs using application programming interfaces, and more specifically to automatically augmenting features for component based application programming interfaces.
Enterprise application development allows for the building of software applications having a unified model that present a coherent and consistent interface across a diverse set of backend data storage systems. Enterprise application development environments typically support “codeless”, as well as programmatic, development. Codeless development typically utilizes a forms-based platform for the development of applications. Programmatic development typically utilizes an application program interface (“API”) for the development of applications. Enterprise applications can be developed using either approach or a combination of approaches.
Enterprise applications developed today have access to diverse sets of data, but only through the use of a native product API or through a common API that is coded to the least common denominator functionality available among the diverse data sets.
APIs define a set of routines usable by an application program to invoke the functionality implemented within the components supporting the API. Example native APIs include the Lotus Notes API for accessing Lotus Notes databases, the IBM DB2 databases. Example common APIs include the Lotus Connector API and Microsoft's ActiveX Data Objects, both provide a high-level, component based, interface for enterprise application developers.
The Lotus Connector V3.0 API presents a common set of application program calls using a set of “connectors” (components) written to interface with specific data sets. The Lotus Connector API architecture is optimized to support high speed operations with enterprise-scale functionality. Lotus Connector API's provides performance relating to both quantity of data and speed of data movement, as a result, Lotus Connector API support libraries are tuned for performance. The Lotus Connector API allows use of product-specific capabilities, allowing developers of connectors to support the specific capabilities of external products. For example, the Lotus Notes Connector supports response hierarchies, file attachments, and other Notes-specific functionality, while the Oracle Connector supports the Oracle array transfer feature. The Lotus Connector API is platform-independent and is available on multiple server based platforms. The Lotus Connector API is also independent of the data format being accessed, allowing access not only to standard database formatted information (e.g., Lotus Notes databases and relational databases), but data from other sources such Enterprise Resource Planning (“ERP”) systems, directories, transaction systems, and other data providers. The Lotus Connector API avoids, when reasonable, dependence on programming language specific constructs in order to allow the use of the Lotus Connector API from programming languages other than C (e.g., LotusScript and Java).
Microsoft's ActiveX Data Objects (“ADO”) is a single, common application interface for accessing data based upon Object Linking and Embedding Data Base (“OLE DB”). OLE DB is a set of interfaces designed to provide access to all data, regardless of type, format or location by effectively “componentizing” database and related data processing functionality. The OLE DB architecture provides for components such as direct data access interfaces, query engines, optimizers, business rules and transaction managers. The fundamental paradigm of ADO and OLE DB is to work at the rowset or table level. OLE DB employs open database connectivity (“ODBC”) for providing universal data access to SQL-relational data.